#ifndef _KEYBOARDCTRL_KEYBOARDCTRLNODE_H_
#define _KEYBOARDCTRL_KEYBOARDCTRLNODE_H_

#include "rclcpp/rclcpp.hpp"
#include "geometry_msgs/msg/twist.hpp"

class Keyboard_Ctrl_Node : public rclcpp::Node
{
public:
    Keyboard_Ctrl_Node(const std::string& node_name);
    ~Keyboard_Ctrl_Node() override;

private:
    void on_timer();
    void action_forward();
    void action_back();
    void action_left();
    void action_right();
    void action_stop();
    void publish_ctrl_cmd(const double& line_x, const double& angle_z);

    rclcpp::TimerBase::SharedPtr its_timer;
    rclcpp::Publisher<geometry_msgs::msg::Twist>::SharedPtr its_ctrl_publisher;
    
    static rclcpp::Logger TRACE;
};

#endif